Become Faster in Writing Performant CUDA Kernels using the Source Page in Nsight Compute

Magnus Strengert | GTC2023 | 03/23/23

目录

  1. NVIDIA Nsight 套件概览
  2. Nsight Compute 详解
    1. 功能概览 (2023.1.0 / CUDA 12.1)
    2. 现场演示:报告导航与引导分析
    3. 未来功能亮点
  3. Source Page 核心指标分析
    1. 现场演示:指令执行指标 (Instructions Executed Metrics)
    2. Warp Stalls Aggregates (Warp 暂停聚合)
    3. 现场演示:Warp Stalls Aggregates 和 L2 Memory Metrics
    4. Source Page Metrics 总结
  4. Source Page 高级功能与最佳实践
    1. 现场演示:函数级统计、相对指标模式和内联函数表
    2. 源页面使用总结
    3. 源页面未来功能亮点
  5. GTC'23 开发者工具与相关资源

1. NVIDIA Nsight 套件概览

NVIDIA Nsight 是一套工具,旨在帮助开发者调试和优化其应用程序。该套件包括:

这些工具可以协同工作。例如,开发者可以使用 Nsight Systems 进行系统级分析以识别 GPU 瓶颈,然后深入到 Nsight Compute 对特定的 CUDA 核函数进行详细分析,或使用 Nsight Graphics 调试图形 API 调用。

2. Nsight Compute 详解

本次演讲的重点是 Nsight Compute,这是一款用于 CUDA 和 OptiX 应用程序的交互式性能分析器。

Page 4, 重点介绍 Nsight Compute
Page 4, 重点介绍 Nsight Compute

2.1 功能概览 (2023.1.0 / CUDA 12.1)

Nsight Compute 提供了丰富的功能,帮助开发者理解和优化其核函数:

Page 5, Nsight Compute 功能概览
Page 5, Nsight Compute 功能概览

2.2 现场演示:报告导航与引导分析

本节通过现场演示展示了如何使用 Nsight Compute 的报告界面进行导航,并利用其引导分析功能来识别性能瓶颈。

Page 6, Nsight Compute 界面演示
Page 6, Nsight Compute 界面演示

2.3 未来功能亮点

Nsight Compute 即将推出多项新功能,旨在进一步提升用户体验和分析效率。

Page 7, Nsight Compute 未来功能亮点
Page 7, Nsight Compute 未来功能亮点

3. Source Page 核心指标分析

3.1 现场演示:指令执行指标 (Instructions Executed Metrics)

这张幻灯片展示了 NVIDIA Nsight Compute 工具的界面,这是一个现场演示,重点关注“指令执行指标”。该界面集成了源代码、汇编代码以及性能指标,帮助开发者分析 CUDA 内核的执行情况。

Nsight Compute 指令执行指标界面演示 (Page 16)
Nsight Compute 指令执行指标界面演示 (Page 16)

3.2 Warp Stalls Aggregates (Warp 暂停聚合)

数据收集 (Data Collection)

Warp 暂停聚合指标通过对程序计数器 (PC) 和 Warp 暂停状态进行采样来收集数据。

SM 架构示意图 (Page 17)
SM 架构示意图 (Page 17)

Warp 暂停采样流程图示 (Page 21)
Warp 暂停采样流程图示 (Page 21)

指标背景 (Metric Background)

案例研究 (Example Case Study)

本案例展示了如何使用上述指标进行分析。

案例研究中的指标计算 (Page 27)
案例研究中的指标计算 (Page 27)

3.3 现场演示:Warp Stalls Aggregates 和 L2 Memory Metrics

此演示展示了 Nsight Compute 中更深入的分析视图,结合了 Warp 暂停聚合、L2 内存指标以及寄存器依赖关系。

Nsight Compute 中 Warp 暂停和 L2 指标的演示 (Page 28)
Nsight Compute 中 Warp 暂停和 L2 指标的演示 (Page 28)

3.4 Source Page Metrics 总结

本节总结了在 Nsight Compute 的 Source Page(源代码页)上可用的关键指标类别及其用途。

Source Page Metrics 总结 (Page 29)
Source Page Metrics 总结 (Page 29)

4. Source Page 高级功能与最佳实践

Source Page 高级功能标题页 (Page 30)
Source Page 高级功能标题页 (Page 30)

4.1 现场演示:函数级统计、相对指标模式和内联函数表

该页面展示了 NVIDIA Nsight Compute 工具的实时演示截图,重点介绍了其在源代码、SASS 指令集和性能指标之间进行关联分析的能力。

Page 31
Page 31

演示界面分为几个关键部分:
- 左侧: 显示高级语言(如 Python 或 C++)的源代码。
- 中间: 展示了内联函数表、函数级统计数据以及指标的相对模式。
- 右侧: 详细列出了与源代码行对应的 SASS(Shader Assembly)指令。每一行 SASS 指令都附有详细的性能指标,例如“已执行指令数”(Instructions Executed)和“停顿采样”(Stall Sampling),并以百分比形式展示了其在全局(Global)和共享(Shared)资源中的占比。

该演示旨在说明 Nsight Compute 如何帮助开发者直观地理解其高级代码在 GPU 上的底层执行情况,并精确定位性能瓶颈。

4.2 源页面使用总结

Page 32
Page 32

Page 33
Page 33

4.3 源页面未来功能亮点

Page 34
Page 34

5. GTC'23 开发者工具与相关资源

Page 35
Page 35


Page 36
Page 36